Imports System.Data.SqlClient

Public Class frmDeptosDetalle
    Private mstrCodigo As String
    Private mstrNombre As String

    Public WriteOnly Property Codigo() As String

        Set(ByVal value As String)
            mstrCodigo = value
        End Set
    End Property
    Public WriteOnly Property Nombre() As String

        Set(ByVal value As String)
            mstrNombre = value
        End Set
    End Property

    Private Sub frmDeptosDetalle_KeyDown(sender As Object, e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
        If e.KeyCode = Keys.Escape Then
            Me.DialogResult = Windows.Forms.DialogResult.Cancel


        End If
    End Sub
    Private Sub frmDeptosDetalle_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Me.BackColor = Color.WhiteSmoke
        lblNombre.BackColor = Color.WhiteSmoke
        lblPuesto.BackColor = Color.WhiteSmoke
        lblResponsable.BackColor = Color.WhiteSmoke
        lblSueldo.BackColor = Color.WhiteSmoke
        txtNombreTitular.BackColor = Color.WhiteSmoke
        txtPuesto.BackColor = Color.White
        txtSueldo.BackColor = Color.White

        lblNombre.ForeColor = System.Drawing.Color.FromArgb(64, 64, 64)
        lblPuesto.ForeColor = System.Drawing.Color.FromArgb(64, 64, 64)
        lblResponsable.ForeColor = System.Drawing.Color.FromArgb(64, 64, 64)
        lblSueldo.ForeColor = System.Drawing.Color.FromArgb(64, 64, 64)

        txtNombreTitular.ForeColor = System.Drawing.Color.FromArgb(64, 64, 64)
        txtPuesto.ForeColor = System.Drawing.Color.FromArgb(64, 64, 64)
        txtSueldo.ForeColor = System.Drawing.Color.FromArgb(64, 64, 64)


        txtNombreTitular.Border.BorderColor = System.Drawing.Color.FromArgb(143, 136, 140)
        txtNombreTitular.Border.BorderColor2 = System.Drawing.Color.FromArgb(143, 136, 140)
        txtPuesto.Border.BorderColor = System.Drawing.Color.FromArgb(143, 136, 140)
        txtPuesto.Border.BorderColor2 = System.Drawing.Color.FromArgb(143, 136, 140)
        txtSueldo.Border.BorderColor = System.Drawing.Color.FromArgb(143, 136, 140)
        txtSueldo.Border.BorderColor2 = System.Drawing.Color.FromArgb(143, 136, 140)

        lblNombre.Text = mstrNombre

        lblSubtitulo.BackColor = System.Drawing.Color.FromArgb(34, 35, 38)
        lblSubtitulo.ForeColor = System.Drawing.Color.FromArgb(134, 136, 140)
        lblSubtitulo.Visible = True


        CargaDetalles(mstrCodigo)
        CargaPuestos()

    End Sub
    Sub CargaDetalles(ByVal Codigo As String)
        Dim cnConn As New SqlConnection
        cnConn.ConnectionString = CitraConnection


        Dim strSql As String = "SELECT * FROM DEPARTAMENTOS WHERE CLAVE='" & Codigo & "'"

        Dim cmdBuscar As New SqlCommand
        cmdBuscar.Connection = cnConn
        cmdBuscar.CommandText = strSql
        Dim rdBuscar As SqlDataReader
        cnConn.Open()
        rdBuscar = cmdBuscar.ExecuteReader

        If rdBuscar.Read() Then
            txtPuesto.Text = BuscarStrDatoCitra("SELECT NOMBRE FROM PUESTOS WHERE CLAVE='" & rdBuscar("CLAVE_PUESTO") & "'")
            txtSueldo.Text = rdBuscar("SUELDO_FIJO")
        Else

            txtPuesto.Text = ""
            txtSueldo.Text = 0
        End If
    End Sub
    Private Sub btnEscribir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)


    End Sub

    Private Sub btnSugerido_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSugerido.Click
        If Len(txtPuesto.Text) = 0 Then
            MsgBox("Debe indicar el puesto para poder definir el sueldo fijo", MsgBoxStyle.Exclamation, "Aviso")
            Exit Sub

        End If

        Dim IdPuesto As Integer = BuscarIntDatoCitra("SELECT IDPUESTO FROM PUESTOS WHERE NOMBRE='" & txtPuesto.Text & "'")
        If IdPuesto > 0 Then
            txtSueldo.Text = BuscarDblDatoCitra("SELECT SUELDO_SUG FROM PUESTOS WHERE IDPUESTO=" & IdPuesto)
        Else
            MsgBox("El puesto indicado no existe", MsgBoxStyle.Exclamation, "Aviso")
            Exit Sub
        End If

    End Sub

    Private Sub btnMaximo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnMaximo.Click
        If Len(txtPuesto.Text) = 0 Then
            MsgBox("Debe indicar el puesto para poder definir el sueldo fijo", MsgBoxStyle.Exclamation, "Aviso")
            Exit Sub

        End If

        Dim IdPuesto As Integer = BuscarIntDatoCitra("SELECT IDPUESTO FROM PUESTOS WHERE NOMBRE='" & txtPuesto.Text & "'")
        If IdPuesto > 0 Then
            txtSueldo.Text = BuscarDblDatoCitra("SELECT SUELDO_MAX FROM PUESTOS WHERE IDPUESTO=" & IdPuesto)
        Else
            MsgBox("El puesto indicado no existe", MsgBoxStyle.Exclamation, "Aviso")
            Exit Sub
        End If
    End Sub

    Private Sub txtNombreTitular_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtNombreTitular.GotFocus
        btnTitular.Visible = True

    End Sub

    Private Sub txtNombreTitular_KeyDown(sender As Object, e As System.Windows.Forms.KeyEventArgs) Handles txtNombreTitular.KeyDown
        If e.KeyCode = Keys.Escape Then
            Me.DialogResult = Windows.Forms.DialogResult.Cancel
        ElseIf e.KeyCode = Keys.F3 Then
            Dim empleados As New frmCatEmpleados
            empleados.Departamento = lblNombre.Text
            empleados.MuestraSueldo = False
            empleados.Puesto = txtPuesto.Text
            empleados.ShowDialog()
            If empleados.DialogResult = Windows.Forms.DialogResult.OK Then
                txtNombreTitular.Text = empleados.Valor
            End If
        ElseIf e.KeyCode = Keys.Enter Then
            txtPuesto.Focus()
        ElseIf e.KeyCode = Keys.Tab Then
            txtPuesto.Focus()
        End If
    End Sub
    Sub CargaEmpleados()
        txtNombreTitular.AutoCompleteCustomSource.Clear()

        Dim CLAVE As String = BuscarStrDatoCitra("SELECT CLAVE FROM DEPARTAMENTOS WHERE NOMBRE='" & lblNombre.Text & "'")
        Dim strSql As String = ""

        strSql = "SELECT NOMBRE_COMPLETO FROM EMPLEADOS E INNER JOIN PUESTOS P ON E.PUESTO=P.CLAVE WHERE DEPTO='" & CLAVE & "' AND ESTATUS<>'B'"

        Dim cnConn As New SqlConnection
        cnConn.ConnectionString = CitraConnection

        Dim cmdBuscar As New SqlCommand
        cmdBuscar.Connection = cnConn
        cmdBuscar.CommandText = strSql
        Dim rdBuscar As SqlDataReader
        cnConn.Open()
        rdBuscar = cmdBuscar.ExecuteReader

        Dim CONT As Integer = 0

        Do While rdBuscar.Read()
            txtNombreTitular.AutoCompleteCustomSource.Add(rdBuscar("NOMBRE_COMPLETO"))
            CONT = CONT + 1
        Loop

        If CONT > 0 Then
            txtNombreTitular.Enabled = True
        Else
            txtNombreTitular.Enabled = False

        End If
    End Sub
    Sub CargaPuestos()
        txtPuesto.AutoCompleteCustomSource.Clear()

        Dim CLAVE As String = BuscarStrDatoCitra("SELECT CLAVE FROM PUESTOS WHERE NOMBRE='" & lblNombre.Text & "'")
        Dim strSql As String = ""

        strSql = "SELECT P.NOMBRE FROM EMPLEADOS E INNER JOIN PUESTOS P ON E.PUESTO=P.CLAVE WHERE DEPTO='" & CLAVE & "' AND ESTATUS<>'B' GROUP BY NOMBRE"

        Dim cnConn As New SqlConnection
        cnConn.ConnectionString = CitraConnection

        Dim cmdBuscar As New SqlCommand
        cmdBuscar.Connection = cnConn
        cmdBuscar.CommandText = strSql
        Dim rdBuscar As SqlDataReader
        cnConn.Open()
        rdBuscar = cmdBuscar.ExecuteReader

        Dim CONT As Integer = 0

        Do While rdBuscar.Read()
            txtPuesto.AutoCompleteCustomSource.Add(rdBuscar("NOMBRE"))
            CONT = CONT + 1
        Loop

        If CONT > 0 Then
            txtPuesto.Enabled = True
        Else
            txtPuesto.Enabled = False

        End If
    End Sub
    Private Sub txtNombreTitular_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtNombreTitular.Leave
        btnTitular.Visible = False

    End Sub

    Private Sub txtNombreTitular_TextChanged(sender As System.Object, e As System.EventArgs) Handles txtNombreTitular.TextChanged

    End Sub

    Private Sub txtPuesto_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtPuesto.GotFocus
        btnPuesto.Visible = True

    End Sub

    Private Sub txtPuesto_KeyDown(sender As Object, e As System.Windows.Forms.KeyEventArgs) Handles txtPuesto.KeyDown
        If e.KeyCode = Keys.Escape Then
            Me.DialogResult = Windows.Forms.DialogResult.Cancel
        ElseIf e.KeyCode = Keys.F3 Then
            Dim Puestos As New frmCatPuestos
            Puestos.Departamento = lblNombre.Text
            Puestos.ShowDialog()
            If Puestos.DialogResult = Windows.Forms.DialogResult.OK Then
                txtPuesto.Text = Puestos.Valor
            End If
        ElseIf e.KeyCode = Keys.Enter Then
            txtSueldo.Focus()
        ElseIf e.KeyCode = Keys.Tab Then
            txtSueldo.Focus()

        End If
    End Sub

    Private Sub txtPuesto_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtPuesto.Leave
        btnPuesto.Visible = False

    End Sub

    Private Sub txtPuesto_TextChanged(sender As System.Object, e As System.EventArgs) Handles txtPuesto.TextChanged

    End Sub

    Private Sub txtSueldo_KeyDown(sender As Object, e As System.Windows.Forms.KeyEventArgs) Handles txtSueldo.KeyDown
        If e.KeyCode = Keys.Escape Then
            Me.DialogResult = Windows.Forms.DialogResult.Cancel
        ElseIf e.KeyCode = Keys.F3 Then
            If Len(txtNombreTitular.Text) < 1 Then
                MsgBox("Debes indicar el nombre del titular del departamento", MsgBoxStyle.Exclamation, "Aviso")
                Exit Sub
            End If
            If Len(txtPuesto.Text) < 1 Then
                MsgBox("Debes indicar el puesto predeterminado", MsgBoxStyle.Exclamation, "Aviso")
                Exit Sub
            End If
            Dim empleados As New frmCatEmpleados
            empleados.Departamento = lblNombre.Text
            empleados.MuestraSueldo = True
            empleados.Puesto = txtPuesto.Text
            empleados.ShowDialog()
            If empleados.DialogResult = Windows.Forms.DialogResult.OK Then
                txtSueldo.Text = empleados.Sueldo
            End If
        End If
    End Sub

    Private Sub txtSueldo_TextChanged(sender As System.Object, e As System.EventArgs) Handles txtSueldo.TextChanged

    End Sub

  

    Private Sub btnEmpleado_Click(sender As System.Object, e As System.EventArgs) Handles btnEmpleado.Click

        If Len(txtNombreTitular.Text) < 1 Then
            MsgBox("Debes indicar el nombre del titular del departamento", MsgBoxStyle.Exclamation, "Aviso")
            Exit Sub
        End If
        If Len(txtPuesto.Text) < 1 Then
            MsgBox("Debes indicar el puesto predeterminado", MsgBoxStyle.Exclamation, "Aviso")
            Exit Sub
        End If
        Dim empleados As New frmCatEmpleados
        empleados.Departamento = lblNombre.Text
        empleados.MuestraSueldo = True
        empleados.Puesto = txtPuesto.Text
        empleados.ShowDialog()
        If empleados.DialogResult = Windows.Forms.DialogResult.OK Then
            txtSueldo.Text = empleados.Sueldo
        End If

    End Sub
    Sub Guardardatos()
        If txtNombreTitular.Text = "" Then
            MsgBox("No se puede guardar sino se indica los datos solicitados", MsgBoxStyle.Exclamation, "Aviso")
            Exit Sub

        End If
        If txtPuesto.Text = "" Then
            MsgBox("No se puede guardar sino se indica los datos solicitados", MsgBoxStyle.Exclamation, "Aviso")
            Exit Sub
        End If
        If txtSueldo.Text = "" Then
            txtSueldo.Text = 0
        End If
        If txtSueldo.Text < 0 Then
            txtSueldo.Text = 0
        End If

        Dim DEPARTAMENTOS As New clsDEPARTAMENTOS
        DEPARTAMENTOS.ACTUALIZA_DEPTO(txtNombreTitular.Text, txtPuesto.Text, lblNombre.Text, txtSueldo.Text)
        Me.DialogResult = Windows.Forms.DialogResult.OK
    End Sub

    Private Sub btnGuardar_Click(sender As System.Object, e As System.EventArgs)

    End Sub

    Private Sub btnGuardar_Click_1(sender As System.Object, e As System.EventArgs) Handles btnGuardar.Click
        Guardardatos()

    End Sub
End Class